package com.huida.app.hutoolsusage;

import cn.hutool.core.date.DateUtil;
import cn.hutool.core.date.TimeInterval;
import cn.hutool.core.lang.Console;
import cn.hutool.core.thread.ThreadUtil;
import org.junit.Test;
import org.springframework.boot.test.context.SpringBootTest;

/**
 * @author wangzhuangzhuang
 * @DESC: Hutool通过封装TimeInterval实现计时器功能，即可以计算方法或过程执行的时间
 * TimeInterval支持分组计时，方便对比时间。
 * @date 2022-01-10 14:28
 */
@SpringBootTest
public class TimeIntervalUsageDemo {

	@Test
	public void test01(){
		TimeInterval timer = DateUtil.timer();

		// -------------------------------
		//          - 执行过程 -
		// -------------------------------
		timer.interval(); // 花费毫秒数
		timer.intervalRestart(); // 返回花费时间，并重置开始时间
		timer.intervalMinute(); // 花费分钟数
	}

	@Test
	public void test02(){
		final TimeInterval timer = new TimeInterval();

		// 分组1
		timer.start("1");
		ThreadUtil.sleep(800);

		// 分组2
		timer.start("2");
		ThreadUtil.sleep(900);

		Console.log("Timer 1 took {} ms", timer.intervalMs("1"));
		Console.log("Timer 2 took {} ms", timer.intervalMs("2"));
//		Timer 1 took 1724 ms
//		Timer 2 took 923 ms


	}
}